.chapter-list {
  padding: 1.5rem 1.5rem 0;
  border: 1px solid #B6CEE3;
  border-radius: 24px;
  background-color: #ECF3FD;
}

@media (min-width: 768px) {
  .chapter-list {
    margin-top: -240px;
    padding: 240px 2.5rem 2.5rem;
    column-count: 2;
    column-gap: 1.5rem;
  }
}

@media (min-width: 992px) {
  .chapter-list {
    margin-top: -260px;
    padding-top: 260px;
  }
}

@media (min-width: 1200px) {
  .chapter-list {
    margin-top: -320px;
    padding-top: 320px;
    column-count: 3;
  }
}

.chapter-list .region {
  margin-bottom: 1.5rem;
  padding: 1rem;
  border-radius: 12px;
  break-inside: avoid;
  background-color: white;
}

@media (min-width: 768px) {
  .chapter-list .region {
    padding: 1.5rem;
  }
}

.chapter-list .region__name {
  margin-bottom: 0;
  text-transform: uppercase;
}

.chapter-list .region__name:is(button) {
  width: 100%;
  padding: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: "roboto-condensed", sans-serif;
  font-size: calc(1.275rem + 0.3vw);
  line-height: 1.2;
  font-weight: 600;
  color: #03396D;
  background-color: white;
  border-radius: 6px;
  border: none;
}

@media (min-width: 1200px) {
  .chapter-list .region__name:is(button) {
    font-size: 1.5rem;
  }
}

.chapter-list .region__name:is(button)::after {
  --icon: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none"><path d="M8.8 3.2a.8.8 0 0 0-1.6 0v4h-4a.8.8 0 1 0 0 1.6h4v4a.8.8 0 0 0 1.6 0v-4h4a.8.8 0 1 0 0-1.6h-4v-4z" fill="%2303396d"/></svg>');
  content: "";
  display: inline-block;
  width: 1rem;
  height: 1rem;
  background-color: currentColor;
  -webkit-mask-image: var(--icon);
  mask-image: var(--icon);
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

.chapter-list .region__name:is(button)[aria-expanded=true]::after {
  --icon: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none"><path d="M2.4 8a.8.8 0 0 1 .8-.8h9.6a.8.8 0 1 1 0 1.6H3.2a.8.8 0 0 1-.8-.8z" fill="%2303396d"/></svg>');
}

.chapter-list .region__name:is(button):focus-visible {
  outline: 1px solid #006398;
  outline-offset: 2px;
  box-shadow: none;
}

.chapter-list .region__chapters {
  margin: 1.5rem 0 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  list-style: none;
}

.chapter-list .region__chapters li {
  margin: 0;
  padding: 0;
}

.chapter-list .region__chapters a {
  padding: 0.5rem 1rem;
  border: 1px solid #B6CEE3;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: "roboto-condensed", sans-serif;
  font-size: 1rem;
  line-height: 1.2;
  font-weight: 600;
  text-decoration: none;
}

.chapter-list .region__chapters a, .chapter-list .region__chapters a:visited {
  color: #006398;
}

.chapter-list .region__chapters a:hover, .chapter-list .region__chapters a:focus {
  color: #004f7a;
}

.chapter-list .region__chapters a:focus-visible {
  outline: 1px solid #006398;
  outline-offset: 2px;
  box-shadow: none;
}

.chapter-list .region__chapters a:active {
  color: #03396D;
}

.chapter-list .region__chapters a::after {
  --arrow: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none"><path fill-rule="evenodd" d="M.741 8a.52.52 0 0 1 .518-.518h12.228L10.225 4.22a.52.52 0 0 1 0-.734.52.52 0 0 1 .734 0l4.148 4.148c.048.048.087.105.113.168s.04.131.04.199-.013.136-.04.199a.52.52 0 0 1-.113.168l-4.148 4.148a.52.52 0 0 1-.734 0 .52.52 0 0 1 0-.734l3.263-3.262H1.26A.52.52 0 0 1 .741 8z" fill="%23006398"/></svg>');
  content: "";
  display: inline-block;
  width: 1rem;
  height: 1rem;
  background-color: currentColor;
  -webkit-mask-image: var(--arrow);
  mask-image: var(--arrow);
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

#map-container {
  position: relative;
}

#map {
  display: none;
}

@media (min-width: 768px) {
  #map {
    display: block;
    width: 100%;
    aspect-ratio: 5/3;
    margin: 0 1.5rem 1.5rem;
  }
}

#info-window {
  display: none;
  position: absolute;
  background: white;
  border-radius: 12px;
  padding: 20px 24px 18px;
  max-width: 280px;
  min-width: 220px;
  z-index: 10;
  pointer-events: all;
  filter: drop-shadow(0 4px 24px rgba(0, 0, 0, 0.18));
}

#info-window::after {
  content: "";
  display: block;
  position: absolute;
  bottom: -17px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 17px 12px 0px 12px;
  border-color: #ffffff transparent transparent transparent;
}